草庐IT

c++ - 实现安全的 nullptr

全部标签

C#:Swap 方法的良好/最佳实现

我读了这个postaboutcardshuffling在许多混洗和排序算法中,您需要交换列表或数组中的两个项目。但是,好的且高效的Swap方法是什么样的?假设一个T[]和List.您如何最好地实现一种方法来交换这两项中的两项?Swap(refcards[i],refcards[n]);//HowisSwapimplemented? 最佳答案 好吧,您发布的代码(refcards[n])只能使用数组(而不是列表)-但您可以简单地使用(wherefoo>和bar是两个值):staticvoidSwap(refintfoo,refintb

c# - 实现 ToArgb()

System.Drawing.Color有一个ToArgb()方法来返回颜色的Int表示。在Silverlight中,我认为我们必须使用System.Windows.Media.Color。它有A、R、G、B成员,但没有返回单个值的方法。如何实现ToArgb()?在System.Drawing.Color中,ToArgb()由return(int)this.Value;System.Windows.Media.Color有一个FromArgb(byteA,byteR,byteG,byteB)方法。如何分解ToArgb()返回的Int以与FromArgb()一起使用?感谢任何指点...

c# - 在 C# 中使用 RAII 安全吗?和其他垃圾收集语言?

我正在制作一个接受System.Windows.Form控件并设置其光标的RAII类。并在析构函数中将光标设置回原来的样子。但这是个坏主意吗?当此类的对象超出范围时,我可以安全地相信析构函数将被调用吗? 最佳答案 这是一个非常非常糟糕的主意。当变量超出范围时,不会调用终结器。它们在对象被垃圾回收之前的某个时刻被调用,这可能是很长一段时间之后。相反,您想要实现IDisposable,然后调用者可以使用:using(YourClassyc=newYourClass()){//Useycinhere}这将自动调用Dispose。在C#中很

c# - 对于实现接口(interface)的类型,你怎么能要求一个没有参数的构造函数呢?

有办法吗?我需要实现特定接口(interface)的所有类型都具有无参数构造函数,可以吗?我正在为我公司的其他开发人员开发用于特定项目的基本代码。有一个进程将创建执行特定任务的类型实例(在不同的线程中),我需要这些类型遵循特定的约定(因此,接口(interface))。接口(interface)将在程序集内部如果您对这种没有接口(interface)的场景有什么建议,我很乐意考虑... 最佳答案 不要太直白,但你误解了接口(interface)的用途。一个接口(interface)意味着几个人可以在自己的类中实现它,然后将那些类的实

c# - 实现对公众只读但对继承人可写的属性的最佳方法是什么?

如果我有一个我想让继承者写入的属性,但在外部保持只读,那么实现它的首选方法是什么?我通常会选择这样的东西:privateobjectm_myProp;publicobjectMyProp{get{returnm_myProp;}}protectedvoidSetMyProp(objectvalue){m_myProp=value;}有没有更好的办法? 最佳答案 privateobjectm_myProp;publicobjectMyProp{get{returnm_myProp;}protectedset{m_myProp=valu

c# - 为列表包装器实现 IEnumerable<T>

我有一个类,它只是一个列表的包装器,即publicclassWrapper{publicListTList{get;set;}publicWrapper(){TList=newList();}}我想制作Wrapper继承自IEnumerable,因此我可以使用以下语法:Wrapperwrapper=newWrapper(){2,4,3,6};知道如何实现哪个接口(interface)IEnumerable,或IEnumerable,如何定义方法体? 最佳答案 如果你实现ICollection您将获得所需的功能。更正:你实际上只需要实

c# - 从字符串安全转换的辅助函数

回到VB6中,我编写了一些函数,这些函数让我无需关心字符串的null和''之间的区别、数字的null和0之间的区别等。在编码时,没有什么比必须关心的更能降低我的工作效率了添加特殊情况代码以处理可能导致一些不相关错误的数据;9999/10000如果我用作数字的东西为空,那么我真的将其视为0。我现在使用C#,VB6和C#2005之间的区别非常广泛...所以我真的不知道从哪里开始编写我的新辅助函数集,或者我是否需要这样做因此,我需要编写一个函数来接受一个字符串、一个数据库字段、一个请求表单/查询字段、???,然后尽其所能将其转换为Double,并将其返回给调用过程。我还需要为shorts、i

c# - 简单的多线程安全日志类

创建简单的多线程安全日志记录类的最佳方法是什么?这样就足够了吗?最初创建日志时如何清除日志?publicclassLogging{publicLogging(){}publicvoidWriteToLog(stringmessage){objectlocker=newobject();lock(locker){StreamWriterSW;SW=File.AppendText("Data\\Log.txt");SW.WriteLine(message);SW.Close();}}}publicpartialclassMainWindow:Window{publicstaticMainW

c# - Windows/.NET 自动更新框架功能集和安全性

我看过几篇关于Window/.NET的不同自动更新框架的帖子,包括:WinSparkleNetSparkleSevenUpdateGoogleOmahaLimeLMSparkleDotNET我对这些自动更新框架之间的主要区别很感兴趣,以及为什么人们会选择一个而不是另一个。我也对它们的安全性很感兴趣。我知道对于他们中的大多数人来说,您必须使用托管的XML文件来让您的应用程序更新list。如何确保安全,让没有购买您的应用程序或不使用您的应用程序的人无法访问您的托管站点并下载您的二进制文件? 最佳答案 还有另一种解决方案,称为Applif

c# - 什么替代了 .net 中的代码访问安全性

随着代码访问安全性的消亡,我们如何限制对.Netframework4.0中DLL的访问?具体来说,我们有一个包含UI层和业务层的项目。UI层告诉业务层用户是谁。我们试图阻止的是UI层以外的任何dll调用业务层并说“嗨,我是乔”。 最佳答案 部分答案,但您可以在.Net4中使用旧版CAS。引自http://www.infoq.com/news/2009/11/CAS-Replaced:With.NET4.0,globalCASpolicieswilldisabledbydefault.Systemadministratorsareen